const fs = require('fs').promises;
const multer = require('multer');

// 直接使用相对路径创建上传目录（无需path模块）
const uploadDir = './uploads';

// 确保上传目录存在
async function ensureDir() {
  try {
    await fs.access(uploadDir);
  } catch {
    await fs.mkdir(uploadDir, { recursive: true });
  }
}
ensureDir();

// 配置multer存储（简化路径）
const storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, uploadDir); // 直接使用相对路径
  },
  filename: function (req, file, cb) {
    // 生成唯一文件名（避免覆盖）
    const uniqueName = Date.now() + '-' + Math.round(Math.random() * 1e9);
    // 保留原始文件扩展名
    const ext = file.originalname.split('.').pop();
    cb(null, uniqueName + '.' + ext);
  }
});

// 限制文件大小为10MB
const upload = multer({
  limits: { fileSize: 10 * 1024 * 1024 },
  storage: storage
}).single('file'); // 与前端name属性一致

// 上传处理函数
exports.uploadData = (req, res) => {
  // 使用multer中间件处理上传
  upload(req, res, function (err) {
    if (err) {
      return res.json({
        success: false,
        message: err.message || '上传失败'
      });
    }

    // 上传成功
    res.json({
      success: true,
      data: {
        originalName: req.file.originalname,
        fileName: req.file.filename,
        size: req.file.size
      }
    });
  });
};